package com.guochao.myRPCversion3.client;

import com.guochao.myRPCversion3.common.Blog;
import com.guochao.myRPCversion3.common.User;
import com.guochao.myRPCversion3.server.service.BlogService;
import com.guochao.myRPCversion3.server.service.UserService;


public class RPCClient {
    public static void main(String[] args) {
        ClientProxy clientProxy = new ClientProxy("127.0.0.1", 8899);
        UserService proxy = clientProxy.getProxy(UserService.class);//获取一个UserService在客户端的一个代理对象，就好像一个UserService实体类可以直接调用方法。

        // 服务的方法1
        User userByUserId = proxy.getUserByUserId(10);//由于是代理的UserService对象，当调用方法时会去调用代理类中的invoke方法，此方法中封装了IO请求进行远程调用。
        System.out.println("从服务端得到的user为：" + userByUserId);
        // 服务的方法2
        User user = User.builder().userName("张三").id(100).sex(true).build();
        Integer integer = proxy.insertUserId(user);
        System.out.println("向服务端插入数据："+integer);

        BlogService blogService = clientProxy.getProxy(BlogService.class);
        Blog blogById = blogService.getBlogById(10000);
        System.out.println("从服务端得到的blog为：" + blogById);

    }
}
